import validateRule from "./validate";

// 生成随机大陆手机号
export function generateRandomMaskedPhoneNumber(): string {
    const mobilePrefix = ["130", "131", "132", "133", "135", "137", "138", "170", "187", "189"];
    // 生成随机的11位数字
    const prefix = mobilePrefix[Math.floor(Math.random() * mobilePrefix.length)];
    const suffix = Math.floor(Math.random() * 1000000000).toString().padStart(8, "0");
    return prefix + suffix;
  }

  export   function getRandomInt(min: number, max: number): number {
    // 使用 Math.random() 生成 [0, 1) 之间的随机数
    // 将其乘以 (max - min + 1) 得到 [0, max - min + 1) 之间的随机数
    // 然后使用 Math.floor() 向下取整，再加上 min 得到 [min, max] 之间的整数
    return Math.floor(Math.random() * (max - min + 1)) + min;
  }

  export function generateRandomTimeAgo(): string {
    // 获取当前时间戳
    const currentTimestamp = Math.floor(new Date().getTime() / 1000);
  
    // 生成一个随机的时间差，至少2小时，但不超过10天      
    const randomTimeDiff = Math.floor(Math.random() * (10 * 24 * 3600 - 2 * 3600) + 600);
  
    // 计算新的时间戳
    const newTimestamp = currentTimestamp - randomTimeDiff;
  
    // 计算时间差
    const timeDifference = currentTimestamp - newTimestamp;
  
    if (timeDifference < 3600) {
      // 不足1小时，显示分钟
      const minutes = Math.floor(timeDifference / 60);
      return `${minutes}分钟前`;
    } else if (timeDifference < 24 * 3600) {
      // 不足1天，显示小时
      const hours = Math.floor(timeDifference / 3600);
      return `${hours}小时前`;
    } else {
      // 大于1天，显示天数
      const days = Math.floor(timeDifference / (24 * 3600));
      return `${days}天前`;
    }
  }

  // 脱敏
  export const tuoMin = (phone:string)=>{
    if(!phone) return phone
    if(validateRule(phone,'HKPhone')) return phone.substring(0, 5) + "****" + phone.substring(7)
    if(validateRule(phone,'DaLuPhone'))return phone.substring(0, 3) + "****" + phone.substring(7)
    return phone
  }